package com.yxym.single;
/*
懒汉式的单例模式
 */
public class SingleTon02 {
    public static void main(String[] args) {
        //System.out.println(Cat.n);
        Cat cat = Cat.getInstance();
        System.out.println(cat);
        Cat cat1 = Cat.getInstance();
        System.out.println(cat1);
    }
}
//在程序执行过程中，只能创建一个Cat对象
//使用单例模式
class Cat{
    private String name;
    public static int n = 10;
    private static Cat cat;
    //1.私有化构造器
    //2.定义一个static静态属性对象
    //3.提供public的static方法，可以返回一个Cat对象
    //懒汉式只有用户使用getInstance时，才返回cat对象，后面再次调用时，会返回上次创建的对象
    private Cat(String name) {
        System.out.println("构造器被调用...");
        this.name = name;
    }
    public static Cat getInstance(){
        if(cat == null){
            cat = new Cat("小青");
        }
        return cat;
    }
    @Override
    public String toString() {
        return "Cat{" +
                "name='" + name + '\'' +
                '}';
    }
}
